﻿/// <reference path="../general.js" />

String.prototype.trim = function () {
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}

function DoView() {
    document.forms[0].action = basePath + 'LichLamViec/LichLamViec/';
    document.forms[0].method = "post";
    document.forms[0].submit();
}

function DoDangKyLich() {
    window.location.href = basePath + 'LichLamViec/DangKyLich/';
//    document.forms[0].action = basePath + 'LichLamViec/DangKyLich?ToDate=' + $("ToDate").val() +"&&FromDate=' + $("FromDate").val();
//    document.forms[0].method = "post";
//    document.forms[0].submit();
}

function DoCreateOrEdit(Id) {
   
    DoClearMessage();
    if (checkDate("EventDate", "") == false) {
        $("#EventDate").focus();
        document.getElementById("EventDateMessage").innerHTML = "Ngày đăng ký không đúng định dạng ! ";
        return;
    }

    var dt = new Date();
    var datenow = dt.getYear() + "-" + dt.getMonth() + "-" + dt.getDay();
    dt = new Date(datenow);
    var eventdate = Date.parse(DoiDinhDangNgay($("#EventDate").val()));
    if (dates.compare(eventdate, dt) <= 0) {
        $("#EventDate").focus();
        document.getElementById("EventDateMessage").innerHTML = "Ngày sự kiện phải sau hoặc bằng ngày hiện tại ! ";
        return;
    }
    //kiem tra thoi gian nhap vao
    if ($("#EventDate").val() != "" || $("#EndDate").val() != "") {
        var beginTime = new Date(ConvertddMMyyyToMMddyy($("#EventDate").val()));
        var endTime = new Date(ConvertddMMyyyToMMddyy($("#EndDate").val()));

        if (beginTime > endTime) {
            alert("Thời gian thực hiện không hợp lý.");
            return;
        }
    }
    //end
    if (IsEmpty($("#StartTimeHH").val()) || !KiemTraGio($("#StartTimeHH").val())) {
        $("#StartTimeHH").focus();
        document.getElementById("StartTimeMessage").innerHTML = "Giờ bắt đầu phải lớn hơn 0 và nhỏ hơn 25 ! ";
        return;
    }

    if (IsEmpty($("#StartTimeMM").val()) || !KiemTraPhut($("#StartTimeMM").val())) {
        $("#StartTimeMM").focus();
        document.getElementById("StartTimeMessage").innerHTML = "Phút bắt đầu phải lớn hơn 0 và nhỏ hơn 61 ! ";
        return;
    }

    if (IsEmpty($("#EndTimeHH").val()) || !KiemTraGio($("#EndTimeHH").val())) {
        $("#EndTimeHH").focus();
        document.getElementById("EndTimeMessage").innerHTML = "Giờ kết thúc phải lớn hơn 0 và nhỏ hơn 25 ! ";
        return;
    }

    if (IsEmpty($("#EndTimeMM").val()) || !KiemTraPhut($("#EndTimeMM").val())) {
        $("#EndTimeMM").focus();
        document.getElementById("EndTimeMessage").innerHTML = "Giờ kết thúc phải lớn hơn 0 và nhỏ hơn 25 ! ";
        return;
    }

    if (IsEmpty($("#InListIdThanhPhan").val())) {
        $("#InListIdThanhPhan").focus();
        document.getElementById("ThanhPhanMessage").innerHTML = "Chưa chọn thành phần tham dự ! ";
        return;
    }
    if (IsEmpty($("#InListIdNguoiChuanBi").val())) {
        $("#InListIdNguoiChuanBi").focus();
        document.getElementById("NguoiChuanBiMessage").innerHTML = "Chưa chọn người chuẩn bị ! ";
        return;
    }

    if (IsEmpty($("#NoiDung").val())) {
        $("#NoiDung").focus();
        document.getElementById("NoiDungMessage").innerHTML = "Nội dung không được để trống ! ";
        return;
    }

//    var note = "Bạn có chắc muốn lưu lịch ?";
//    if (confirm(note)) {
        if (Id <= 0) {
            document.forms[0].action = basePath + 'LichLamViec/ThemMoiLichLamViec/';
                    document.forms[0].method = "post";
                    document.forms[0].submit();
        }
        else {
            document.forms[0].action = basePath + 'LichLamViec/SuaLichLamViec/';
            document.forms[0].method = "post";
            document.forms[0].submit();
//        }
    }
}

function CheckTime(strTime) { //formater is hh:mm:ss
    var arr = strTime.split(":");
    if (arr.length != 3)
        return false;
    else {
        if (!IsNumeric(arr[0]) || !IsNumeric(arr[1]) || !IsNumeric(arr[2]))
            return false;
    }
    return true;
}

function DoDelete(id) {
    document.forms[0].action = basePath + 'LichLamViec/XoaLichLamViec/';
    document.forms[0].method = "post";
    document.forms[0].submit();
}

function DoClearMessage() {
    document.getElementById("EventDateMessage").innerHTML = "";
    document.getElementById("StartTimeMessage").innerHTML = "";
    document.getElementById("EndTimeMessage").innerHTML = "";
    document.getElementById("ThanhPhanMessage").innerHTML = "";
    document.getElementById("NguoiChuanBiMessage").innerHTML = "";
}

//........................//
//Phần script cho Thành phần
//........................//
function DoChonThanhPhan() {
    var ListUserId = "";
    var ListUserText = "";
    for (var z = 0; z < document.forms["formThanhPhan"].length; z++) {
        var item = document.forms["formThanhPhan"].elements[z];
        if (item.name == 'chkUser' && item.type == 'checkbox' && item.checked == true) {
            var idUser = item.id.substring(7, item.id.length);
            ListUserId += idUser + ",";
            ListUserText += document.getElementById("UserText" + idUser).innerHTML.trim() + ", ";
        }
    }
    if ($("#TypeOfBox").val() == "0") {
        $("#InListTextThanhPhan").val(ListUserText);
        $("#InListIdThanhPhan").val(ListUserId);
    }
    else if ($("#TypeOfBox").val() == "1") {
        $("#InListTextNguoiChuanBi").val(ListUserText);
        $("#InListIdNguoiChuanBi").val(ListUserId);
//        var arr = ListUserId.split(",");
//        if (!IsEmpty(arr[0]))
//            $("#NguoiChuanBi").val(arr[0]);
    }
    javascript: $('#ThanhPhan').dialog('close');
}

function checkIDOnList(id, listID) {
    var arr = listID.split(",");
    for (var i = 0; i < arr.length; i++) {
        if (id == arr[i]) return true;
    }
    return false;
}

function ResertFormThanhPhan() {
    var listId = "";
    if ($("#TypeOfBox").val() == "0") listId = $("#InListIdThanhPhan").val();
    else if ($("#TypeOfBox").val() == "1") listId = $("#InListIdNguoiChuanBi").val();

    for (var z = 0; z < document.forms["formThanhPhan"].length; z++) {
        var item = document.forms["formThanhPhan"].elements[z];
        if (item.name == 'chkdep' && item.type == 'checkbox') {
            item.checked = false;
        }
    }
    
    for (var z = 0; z < document.forms["formThanhPhan"].length; z++) {
        var item = document.forms["formThanhPhan"].elements[z];
        if (item.name == 'chkUser' && item.type == 'checkbox') {
            var IdUser = item.id.substring(7, item.id.length);
            if (!checkIDOnList(IdUser, listId))
                item.checked = false;
            else {
                item.checked = true;
                if (document.getElementById("chkdep" + item.value) != null)
                    DoCheckBoxCheckAll(item.value);
            }
        }
    }
}

function DoCheckAll(IdDepartment) {
    for (var z = 0; z < document.forms["formThanhPhan"].length; z++) {
        var item = document.forms["formThanhPhan"].elements[z];
        if (item.name == 'chkUser' && item.type == 'checkbox' && item.value == IdDepartment) {
            item.checked = document.getElementById("chkdep" + IdDepartment).checked;
        }
    }
}

function DoCheckBoxCheckAll(IdDepartment) {
    var checked = true;
    for (var z = 0; z < document.forms["formThanhPhan"].length; z++) {
        var item = document.forms["formThanhPhan"].elements[z];
        if (item.name == 'chkUser' && item.type == 'checkbox' && item.value == IdDepartment) {
            if (item.checked == false) {
                checked = false;
            }
        }
    }
    if (checked)
        document.getElementById("chkdep" + IdDepartment).checked = true;
    else
        document.getElementById("chkdep" + IdDepartment).checked = false;
}

function Show_Hide(id) {
    if ($("#Show_HideBut" + id).hasClass("Expanted")) {
        $("#Show_HideBut" + id).removeClass("Expanted");
        $("#Show_HideBut" + id).addClass("UnExpanted");
    }
    else {
        $("#Show_HideBut" + id).removeClass("UnExpanted");
        $("#Show_HideBut" + id).addClass("Expanted");
    }
    $("#open_close" + id).slideToggle("fast");
}

//phần cho lightbox
$(document).ready(function () {
    $(".XemNguoiChuanBi").click(function () {
        var id = this.id.replace("XuLy", "");
        var url = basePath + 'LichLamViec/ViewDetailNguoiChuanBi?IdLich=' + id;
        $("#tbl_DanhSachNguoiChuanBi>table>tbody").empty();
        $.getJSON(url, null, function (data) {
            for (var i = 0; i < data.length; i++) {
                $("#tbl_DanhSachNguoiChuanBi>table>tbody").append("<tr>" +
                                                            "<td style='width: 30px;text-align:right'><img src='../../Content/ImagesAdmin/check.PNG'/></td>" +
                                                            "<td>" + data[i] + "</td>" +
                                                       "</tr>");
            }
        });
        var p = $(this).position();
        $("#ViewNguoiChuanBi").css({ "top": +(p.top) + "px", "left": +(p.left - 270) + "px", "display": "block" });
    });

    $(".XemThanhPhan").click(function () {
        var id = this.id.replace("PhoiHop", "");
        $("#tbl_DanhSachThanhPhan>table>tbody").empty();
        var url = basePath + 'Common/ViewDetailThanhPhan?IdLich=' + id;
        $.getJSON(url, null, function (data) {
            for (var i = 0; i < data.length; i++) {
                $("#tbl_DanhSachThanhPhan>table>tbody").append("<tr>" +
                                                            "<td style='width: 30px;text-align:right'><img src='../../Content/ImagesAdmin/check.PNG'/></td>" +
                                                            "<td>" + data[i] + "</td>" +
                                                       "</tr>");
            }
        });
        var p = $(this).position();
        $("#ViewThanhPhan").css({ "top": +(p.top) + "px", "left": +(p.left - 270) + "px", "display": "block" });
    });
});

/////////////////////////////////////////////////////////////////////
//////////////kiễm tra dữ liệu///////////////////////////////////////
/////////////////////////////////////////////////////////////////////
function checkDate(ele, text) {
    var marker = "/";
    var submitDate = document.getElementById(ele).value;
    var dateComp = submitDate.split(marker);
    var now = new Date();
    var yearNow = now.getFullYear();
    dayInmonth = new Array(12);
    dayInmonth[0] = 31;
    dayInmonth[1] = 29;
    dayInmonth[2] = 31;
    dayInmonth[3] = 30;
    dayInmonth[4] = 31;
    dayInmonth[5] = 30;
    dayInmonth[6] = 31;
    dayInmonth[7] = 30;
    dayInmonth[8] = 31;
    dayInmonth[9] = 31;
    dayInmonth[10] = 30;
    dayInmonth[11] = 31;
    if (dateComp.length != 3) {
        return false;
    }
    for (var i = 0; i < 3; i++) {
        if (isNaN(dateComp[i])) {
            return false;
        }
    }
    if (dateComp[1] > 12 || dateComp[1] < 1) {
        return false;
    }
    if (dateComp[2] % 4 == 0) {
        dayInmonth[1] = 29;
    }
    else {
        dayInmonth[1] = 28;
    }
    if (dateComp[0] > dayInmonth[dateComp[1] - 1] || dateComp[0] < 1) {
        return false;
    }

    return true;
}

function DoiDinhDangNgay(date) {
    var marker = "/";
    var dateComp = date.split(marker);
    return dateComp[2] + "-" + dateComp[1] + "-" + dateComp[0];
}

// Source: http://stackoverflow.com/questions/497790
var dates = {
    convert: function (d) {
        // Converts the date in d to a date-object. The input can be:
        //   a date object: returned without modification
        //  an array      : Interpreted as [year,month,day]. NOTE: month is 0-11.
        //   a number     : Interpreted as number of milliseconds
        //                  since 1 Jan 1970 (a timestamp) 
        //   a string     : Any format supported by the javascript engine, like
        //                  "YYYY/MM/DD", "MM/DD/YYYY", "Jan 31 2009" etc.
        //  an object     : Interpreted as an object with year, month and date
        //                  attributes.  **NOTE** month is 0-11.
        return (
            d.constructor === Date ? d :
            d.constructor === Array ? new Date(d[0], d[1], d[2]) :
            d.constructor === Number ? new Date(d) :
            d.constructor === String ? new Date(d) :
            typeof d === "object" ? new Date(d.year, d.month, d.date) :
            NaN
        );
    },
    compare: function (a, b) {
        // Compare two dates (could be of any type supported by the convert
        // function above) and returns:
        //  -1 : if a < b
        //   0 : if a = b
        //   1 : if a > b
        // NaN : if a or b is an illegal date
        // NOTE: The code inside isFinite does an assignment (=).
        return (
            isFinite(a = this.convert(a).valueOf()) &&
            isFinite(b = this.convert(b).valueOf()) ?
            (a > b) - (a < b) :
            NaN
        );
    },
    inRange: function (d, start, end) {
        // Checks if date in d is between dates in start and end.
        // Returns a boolean or NaN:
        //    true  : if d is between start and end (inclusive)
        //    false : if d is before start or after end
        //    NaN   : if one or more of the dates is illegal.
        // NOTE: The code inside isFinite does an assignment (=).
        return (
            isFinite(d = this.convert(d).valueOf()) &&
            isFinite(start = this.convert(start).valueOf()) &&
            isFinite(end = this.convert(end).valueOf()) ?
            start <= d && d <= end :
            NaN
        );
    }
}

function KiemTraGio(gio) {
    if (gio > 24 || gio < 0)
        return false;
    return true;
}

function KiemTraPhut(phut) {
    if (phut > 60 || phut < 0)
        return false;
    return true;
}